package com.kly.enums;

import java.util.ArrayList;
import java.util.List;
import java.util.Objects;


/**
 * 支付状态：-1-关闭 0-初始化 1-处理中 2-成功
 * @author linqu
 */
public enum PayStatusEnum {

    CLOSED_ORDER(-1, "CLOSED_ORDER"),
    INIT(0, "INIT"),
    PROCESSING(1, "PROCESSING"),
    PAY_SUCCESS(2, "PAY_SUCCESS"),
    ;


    private Integer code;
    private String name;

    PayStatusEnum(Integer code, String name) {
        this.code = code;
        this.name = name;
    }

    public Integer getCode() {
        return code;
    }

    public PayStatusEnum setCode(Integer code) {
        this.code = code;
        return this;
    }

    public String getName() {
        return name;
    }

    public PayStatusEnum setName(String name) {
        this.name = name;
        return this;
    }

    public static PayStatusEnum getEnumByCode(String code) {

        if (Objects.isNull(code)) {
            return null;
        }

        PayStatusEnum payTypeEnum = null;

        for (PayStatusEnum p : PayStatusEnum.values()) {
            if (p.getCode().equals(Integer.valueOf(code))) {
                payTypeEnum = p;
            }
        }
        return payTypeEnum;
    }


    public static List<PayStatusEnum> getPaymentChannelEnumList() {
        List<PayStatusEnum> payGatewayEnumList = new ArrayList<>();

        for (PayStatusEnum paymentChannelEnum : PayStatusEnum.values()) {
            payGatewayEnumList.add(paymentChannelEnum);
        }

        return payGatewayEnumList;
    }
}
